#define _CRT_SECURE_NO_WARNINGS 1

//#include <iostream>
//
//using std::cout;
//using std::endl;
//
//namespace bit
//{
//	namespace zs
//	{
//		void Push()
//		{
//			cout << "zs" << endl;
//		}
//	}
//
//	namespace ls
//	{
//		void Push()
//		{
//			cout << "ls" << endl;
//		}
//	}
//}
//
//int main()
//{
//	int i = 0;
//	std::cin >> i;
//
//	cout << "xxxxxx" << endl;
//	cout << "xxxxxx" << endl;
//	cout << "xxxxxx" << endl;
//	cout << "xxxxxx" << endl;
//
//	bit::zs::Push();
//	bit::ls::Push();
//
//	return 0;
//}

// vc6.0
//#include<iostream.h>

#include<iostream>
using namespace std;
//
//int main()
//{
//	// 1、左移
//	//int i = 100;
//	//i = i << 1;
//	//const char* str = "hello world";
//	//char ch = '\n';
//
//	//// 2、流插入 自动识别类型
//	//cout << str << i << ch << endl;
//	//printf("%s%d%c", str,i,ch);
//	//
//	//// 右移
//
//	//// 流提取
//	//cin >> i >> ch;
//	//cout << str << i << ch << endl;
//
//	//scanf("%d%c", &i, &ch);
//	//printf("%s%d%c", str, i, ch);
//
//	double d = 1.11111111;
//	printf("%.2lf\n", d);
//	cout << d << endl;
//
//	return 0;
//}

///////////////////////////////////////////////////////////////
// 缺省/默认 参数

//void Func(int a = 0)
//{
//	cout << a << endl;
//}
//
//int main()
//{
//	Func(1);
//	Func();
//
//	return 0;
//}

// 全缺省
//void Func(int a = 10, int b = 20, int c = 30)
//{
//	cout << "a = " << a << endl;
//	cout << "b = " << b << endl;
//	cout << "c = " << c << endl << endl;
//}
//
//int main()
//{
//	Func(1, 2, 3);
//	Func(1, 2);
//	Func(1);
//	Func();
//
//	return 0;
//}

// 半缺省 从右往左连续给
//void Func(int a, int b = 20, int c = 30)
//{
//	cout << "a = " << a << endl;
//	cout << "b = " << b << endl;
//	cout << "c = " << c << endl << endl;
//}
//
//int main()
//{
//	Func(1, 2, 3);
//	Func(1, 2);
//	Func(1);
//
//	return 0;
//}



//struct Stack
//{
//	int* a;
//	int size;
//	int capacity;
//	//...
//};
//
//void StackInit(struct Stack* ps, int n = 4);
//void StackPush(struct Stack* ps, int x);

// 10:40
//int main()
//{
//	struct Stack st1;
//
//	// 1、确定要插入100个数据
//	StackInit(&st1, 100);  // call StackInit(?)
//
//	// 2、只插入10个数据
//	struct Stack st2;
//	StackInit(&st2, 10);   // call StackInit(?)
//
//	// 3、不知道要插入多少个
//	struct Stack st3;
//	StackInit(&st3);
//
//	return 0;
//}

// 遥遥领先

// C语言不允许同名函数
// CPP语言允许同名函数，要求：函数名相同，参数不同，构成函数重载
// 1、参数类型的不同
// 2、参数个数不同
// 3、参数顺序不同(本质还是类型不同)
// _Z3Addii

void Add(int left, int right);
//{
//	cout << "int Add(int left, int right)" << endl;
//	return left + right;
//}

// _Z3Adddd
double Add(double left, double right);
//{
//	cout << "double Add(double left, double right)" << endl;
//	return left + right;
//}

//void f(int a, char b);
//void f(char b, int a);

// C语言不支持重载   链接时，直接用函数名去找地址，有同名函数，区分不开
// CPP如何支持的呢？ 函数名修饰规则，名字中引入参数类型，各个编译器自己实现了一套
//int main()
//{
//	Add(1, 2);
//	Add(1.1, 2.2);
//
//	//f(1, 'a'); // call f(?)
//	//f('a', 1); // call f(?)
//
//	// 
//	f(1, 'a'); // call _Z1fic(?)
//	f('a', 1); // call _Z1fci(?)
//
//	return 0;
//}

int main()
{
	return 0;
}